﻿using EGuayas.Web.Resources;
using EntGuayasSLA.BL;
using EntGuayasSLA.BL.Archivos.Pdf;
using EntGuayasSLA.BL.Listas;
using EntGuayasSLA.BL.Listas.Criterias;
using Ext.Net;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.IO;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace EGuayas.Web.Licenciamiento.admin.tabs
{
    public partial class wucInformeCorrecion : ucWuc
    {
        protected String FaseIdLic
        {
            get
            {
              
                return ReadCustomConfigFaseLic(this.pnlLoadDocu, this.ID);
            }

        }

        protected String CodigoSessionFase
        {
            get
            {

                return ReadCustomConfigSessionCodigoFase(this.pnlLoadDocu, this.ID);
            }

        }
        protected String CodigoFase
        {
            get
            {

                return ReadCustomConfigCodeFase(this.pnlLoadDocu, this.ID);
            }

        }
        protected String IdPageSession
        {
            get
            {
               
                return ReadCustomConfigPage(this.pnlLoadDocu, this.ID);
            }

        }
        protected String ModuloSession
        {
            get
            {

                return ReadCustomConfigSession(this.pnlLoadDocu, this.ID);
            }

        }
        protected String EstadoFase
        {
            get
            {

                return ReadCustomConfigEstadoFase(this.pnlLoadDocu, this.ID);
            }

        }
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
            if (!X.IsAjaxRequest)
            {
                string IdExpediente = GetSessionPage.ExpedienteId(IdPageSession);
                //Para habilitar ventana de configuracion
                this.RefreshCount(IdExpediente);
                this.hddExp.SetValue(IdExpediente);
                this.hdEstadoPorRev.SetValue(Valores.Codigo_Estado_Inf_PorRevizar);
                this.hdEstadoDir.SetValue(Valores.Codigo_Estado_Inf_RevDir);
                this.hdEstadoSubDir.SetValue(Valores.Codigo_Estado_Inf_RevSubDir);
                this.hddCodigoRol.SetValue(GetSessionUsuario.UsuarioRolCodigo);
                //Llenar datos de personas con rol director y subdirecto
                this.stoCbxDirector.DataSource = DirectorSubDirLista.GetDirectorSubDirLista();
                this.stoCbxDirector.DataBind();
                //Llenar datos de resolución exepto en categorizacion
                this.hddEstadoFase.SetValue(GetSessionPage.GetSession(this.CodigoSessionFase));
                this.hddConstCatg.SetValue(Constantes.LCategorizacion);
                if (GetSessionPage.GetSession(this.CodigoSessionFase) != Constantes.LCategorizacion)
                {
                    this.stoEstadosFases.DataSource = EstadoFaseLista.GetEstadoFase(GetSessionPage.GetSession(this.CodigoSessionFase));
                    this.stoEstadosFases.DataBind();
                }
                Window winNoDoc = new Window()
                {
                    ID     = "winDocVerNow",
                    Title  = "Documentos a Corregir",
                    Hidden = true,
                    Height = Unit.Pixel(400),
                    Width = Unit.Pixel(660),
                    ButtonAlign = Alignment.Center,
                    Closable = false,
                    Maximized = true,
                    Loader = new ComponentLoader
                    {
                        Mode = LoadMode.Frame,
                        Url = ConfigurationManager.AppSettings.Get("Url") + "Licenciamiento/admin/tabs/PgWucInforme.aspx?IdPageSession=" + IdPageSession + "&FaseCode=" + CodigoFase,
                        LoadMask =
                        {
                            ShowMask = true
                        }
                    }
                };
                Ext.Net.Button btnApply = new Ext.Net.Button();
                btnApply.Text = "Cerrar";
                btnApply.OnClientClick = "wucJsCorrInfDoc.CloseVentanaNoAceptar();";
                winNoDoc.Buttons.Add(btnApply);

                this.Controls.Add(winNoDoc);

                //DESHABILITAR MODO LECTURA
                if (GetSessionPage.GetSession(EstadoFase) == Valores.Codigo_Estado_Fase_Finalizado || GetSessionPage.GetSession(EstadoFase) == Valores.Codigo_Estado_Fase_Inicial)
                {
                   
                    RemoveEndColumnGridGlobal(5, this.gpDocumentosLoad);         
                   
                    this.btnForm.Disable();
                }
                else
                {
                    this.btnForm.Enable();
                
                }

             

            }
            }
            catch (Exception ex)
            {
                RegistrarLog("wucInformeCorrecion.Page_Load::" + ex);
             
            }
        }

       


       [DirectMethod(IDAlias = "WucInforme")]
        public int RefreshCount(string IdExpediente)
        {
           try
           {
               FaseLicenciamientoLista fasesCreadas = FaseLicenciamientoLista.GetFaseLicenciamientoLista(Guid.Parse(IdExpediente));
               this.hddCountFases.SetValue(fasesCreadas.Count);
               return (fasesCreadas.Count);
            }
            catch (Exception ex)
            {
                RegistrarLog("wucInformeCorrecion.RefreshCount::" + ex);
              
            }
           return (-1);
        }
        /// <summary>
        /// Datos de archivos de promotor
        /// </summary>
        /// <returns></returns>
        [DirectMethod(IDAlias = "WucInforme")]
        public ArchivoLista BindData()
        {
            try
            {
            ArchivoGlobalCriteria filter = ArchivoGlobalCriteria.NewArchivoGlobalCriteria();
            filter.ExpedienteId = "";// GetSessionPage.ExpedienteId(IdPageSession);
            filter.FaseId = GetSessionPage.GetSession(FaseIdLic);
            filter.Tabla = ModuloSession;
            return ArchivoLista.GetArchivoLista(filter);
            }
            catch (Exception ex)
            {
                RegistrarLog("wucInformeCorrecion.BindData::" + ex);
               
            }
            return null;
        }
        [DirectMethod(IDAlias = "WucInforme")]
        public ListReturn ObtenerRevisor(string id)
        {
            try
            {
                ListReturn valReturn = new ListReturn();
                valReturn.ListaRev = RevisionFaseLista.GetRevisionFaseLista(id);
                RevisionFaseInfo rowInfo = valReturn.ListaRev.FirstOrDefault();
                valReturn.ListaDir = null;
                //Remover persona asignada
                if (rowInfo != null)
                {
                    valReturn.ListaDir = DirectorSubDirLista.GetDirectorSubDirLista(rowInfo.PersonaIdRevisor);
            
                }

                return valReturn;
             }
            catch (Exception ex)
            {
                RegistrarLog("wucInformeCorrecion.ObtenerRevisor::" + ex);
               
            }
            return null;
        }
        #region Expander Grid
        protected static void GrdInbox_Command(object sender, DirectEventArgs e)
        {
            /*
                string commandName = e.ExtraParams["command"];
                long Id = Convert.ToInt64(e.ExtraParams["Id"]);
            */
        }
        
        #endregion Expander Grid

        /// <summary>
        /// Subir archivos de promotor
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void UploadClick(object sender, DirectEventArgs e)
        {
            try
            {
                var notificaPromotor = false;
                //Cambio de estado de fase de licenciamiento
                if (GetSessionPage.GetSession(this.CodigoSessionFase) != Constantes.LCategorizacion)
                {
                    string idFaseLic = GetSessionPage.GetSession(FaseIdLic);
                    //FASELICENCIAMIENTO
                    FaseLicenciamiento objFaselic = FaseLicenciamiento.GetEditableRoot(Guid.Parse(idFaseLic));
                    objFaselic.EstadoDMA = e.ExtraParams["hdEstado"];
                    objFaselic.Save();
                }
                if (CodigoFase == Constantes.LParticipacionS || CodigoFase == Constantes.LPoliza || CodigoFase == Constantes.LCosto)
                {
                    notificaPromotor = true;
                    string idFaseLic = GetSessionPage.GetSession(FaseIdLic);
                    FaseLicenciamiento objFaselic = FaseLicenciamiento.GetEditableRoot(Guid.Parse(idFaseLic));
                    objFaselic.EstadoFase = Valores.Codigo_Estado_Fase_Finalizado;
                    objFaselic.Save();
                    var expId = GetSessionPage.ExpedienteId(IdPageSession);
                    var fasesExpLic = FaseLicenciamientoLista.GetFaseLicenciamientoLista(Guid.Parse(expId));
                    FaseLicenciamiento faseLicSig;
                    var idFaseLicSig = Guid.NewGuid(); var idFaseLicSig1 = Guid.NewGuid();
                    switch (CodigoFase)
                    {
                        case Constantes.LPoliza:
                            var fasLicSig =  fasesExpLic.FirstOrDefault(
                                fe =>
                                fe.CodigoFase == Constantes.LCertificado || fe.CodigoFase == Constantes.LLicenciamiento);
                        idFaseLicSig = fasLicSig.Id;
                            break;
                        case Constantes.LParticipacionS:
                            var fasLicSigLC = fasesExpLic.FirstOrDefault(
                                fe =>
                                fe.CodigoFase == Constantes.LFichaAmbiental ||
                                fe.CodigoFase == Constantes.LEstudioIADefinitivo);
                            var fasLicSigCosto = fasesExpLic.FirstOrDefault(
                                fe =>
                                fe.CodigoFase == Constantes.LCosto);
                            idFaseLicSig = fasLicSigLC.Id;
                            idFaseLicSig1 = fasLicSigCosto.Id;
                            break;
                    }

                    faseLicSig = FaseLicenciamiento.GetEditableRoot(idFaseLicSig);
                    faseLicSig.EstadoFase = Valores.Codigo_Estado_Fase_Inicial;
                    faseLicSig.Save();
                    if (CodigoFase==Constantes.LParticipacionS)
                    {
                        faseLicSig = FaseLicenciamiento.GetEditableRoot(idFaseLicSig1);
                        faseLicSig.EstadoFase = Valores.Codigo_Estado_Fase_Inicial;
                        faseLicSig.Save();
                    }
                    
                }
                //Cambiar estado de licencia-APR
                if ((e.ExtraParams["hdEstado"] == Valores.EstadoAprobado) && (CodigoFase == Constantes.LCertificado || CodigoFase == Constantes.LLicenciamiento))
                {
                    string idFaseLic = GetSessionPage.GetSession(FaseIdLic);
                    FaseLicenciamiento objFaselicCer = FaseLicenciamiento.GetEditableRoot(Guid.Parse(idFaseLic));
                    ExpedienteLicenciamiento expLic = ExpedienteLicenciamiento.GetEditableRoot(Guid.Parse(objFaselicCer.ExpedienteLicId));
                    expLic.Licencia = Valores.Codigo_CHAR_Si;
                    expLic.Save();
                }
                //Documentos en estado NO ACEPTADO
                //Caso de selecionar estado aceptado
                if (e.ExtraParams["hdEstado"] == Valores.EstadoAceptado)
                {
                    Session[Constantes.LListaDocumentos + CodigoFase] = null;
                    Session[Constantes.LListaArchivosAdd + CodigoFase] = null;
                }
                if (Session[Constantes.LListaDocumentos + CodigoFase] != null)
                {
                    string gridJson = Session[Constantes.LListaDocumentos + CodigoFase].ToString();
                    Dictionary<string, string>[] gridData = JSON.Deserialize<Dictionary<string, string>[]>(gridJson);
                    int i = 0;
                    string nameTable = ModuloSession.Replace("INF", "");
                    while (i < gridData.Length)
                    {
                        var val1 = gridData[i];

                        Archivo arch = Archivo.GetEditableRoot(Guid.Parse(val1["Id"]), nameTable);
                        arch.SubirNuevo = val1["SubirNuevo"];
                        arch.Save();
                        i += 1;
                    }
                    Session[Constantes.LListaDocumentos + CodigoFase] = null;
                }
                if (Session[Constantes.LListaArchivosAdd + CodigoFase] != null)
                {
                    string json = Session[Constantes.LListaArchivosAdd + CodigoFase].ToString();
                    Dictionary<string, string>[] listItems = JSON.Deserialize<Dictionary<string, string>[]>(json);

                    foreach (Dictionary<string, string> row in listItems)
                    {
                        Boolean ifAdd = true;
                        Boolean.TryParse(row["Nuevo"], out ifAdd);
                        if (ifAdd == true)
                        {

                            DocumentoAdicional objDocAdd = DocumentoAdicional.NewEditableRoot();
                            objDocAdd.Id = System.Guid.NewGuid();

                            objDocAdd.Nombre = row["Nombre"];
                            objDocAdd.Formato = row["Formato"];
                            objDocAdd.Obligatorio = Valores.Codigo_CHAR_Si;

                            objDocAdd.Modulo = ModuloSession;
                            objDocAdd.IdModulo = GetSessionPage.GetSession(FaseIdLic);
                            objDocAdd.Save();
                        }
                    }
                    Session[Constantes.LListaArchivosAdd + CodigoFase] = null;
                }
                
                //Preceso de subido de documentos
                FileUploadField myCtlFileUp = (FileUploadField)this.FindControl("FileUploadDocUpInf");
                if (myCtlFileUp.HasFile)
                {
                    Boolean IfNewVer = Convert.ToBoolean(e.ExtraParams["hddnDocIfVer"]);
                    int version = 0;
                    string fileExt = myCtlFileUp.PostedFile.FileName.Substring(myCtlFileUp.PostedFile.FileName.LastIndexOf('.') + 1);
                    string ruta = "";
                    string fileName = "";
                    string fileNameTmp = "";

                    Int32.TryParse(e.ExtraParams["hddnDocUpVers"], out version);
                    this.GetNameFile(myCtlFileUp, fileExt, ref ruta, ref fileName, ref fileNameTmp);

                    //TODO:Generar User id para descriptar y encriptar                
                    //Guid guid = Guid.NewGuid();

                    byte[] USER = Encoding.UTF8.GetBytes(ConfigurationManager.AppSettings.Get("UserPdf"));
                    byte[] OWNER = Encoding.UTF8.GetBytes(ConfigurationManager.AppSettings.Get("PwdPdf"));

                    if (fileExt.ToLower() == "pdf")
                    {
                        myCtlFileUp.PostedFile.SaveAs(fileNameTmp);
                        Pdf.EncryptFilePdf(fileNameTmp, fileName, USER, OWNER);
                        File.Delete(fileNameTmp);
                    }
                    else
                    {
                        myCtlFileUp.PostedFile.SaveAs(fileName);
                    }
                    string tpl = Mensajes.MensajeArchivoCorrecto;

                    Archivo objArch = Archivo.NewEditableRoot(ModuloSession);
                    objArch.Id = System.Guid.NewGuid();
                    //Nuevas versiones datos correguidos
                    objArch.SubirNuevo = "C";
                    if (version == 1)
                    {
                        objArch.SubirNuevo = "N";
                        objArch.Referencia = objArch.Id.ToString();
                    }
                    else
                        if (version == 2)
                            objArch.Referencia = e.ExtraParams["hddnDocUpId"];
                        else
                            if (version > 2)
                                objArch.Referencia = e.ExtraParams["hddnDocUpRef"];
                   
                    objArch.Nombre = e.ExtraParams["txtNombre"];
                    objArch.Descripcion = e.ExtraParams["txtDesp"];
                    objArch.FechaCreacion = DateTime.Now;
                    objArch.RequiereFirmar = "N";
                    objArch.Firmado = "N";
                    objArch.TipoDocumento = "Informe";

                    objArch.Version = version;
                    objArch.RequiereFirmar = "N";

                    objArch.PersonaId = GetSessionUsuario.PersonaId;
                    objArch.GlobalRelacionId = GetSessionPage.GetSession(FaseIdLic);
                    objArch.CodigoFase = GetSessionPage.GetSession(CodigoSessionFase);
                    objArch.ExpedienteId = GetSessionPage.ExpedienteId(IdPageSession);
                    objArch.Ruta = ruta;
                    objArch.Save();

                    if (notificaPromotor)
                    {
                        UpdateEstadoInfomeNotifica(objArch.Id);
                    }
                    else
                    {
                        //Inicialmente Tecnico sube informe con estado POR-REVIZAR
                        UpdateEstadoInfome(objArch.Id, Valores.Codigo_Estado_Inf_PorRevizar);
                    }
                    //
                    //Guardar id archivos temporalmente recien creados
                    ExtNet.Js.Call("wucJsLoadCor.AddIdsNew", objArch.Id.ToString(), objArch.Version.ToString());
                    gpDocumentosLoad.GetStore().Reload();
                    X.Msg.Show(new MessageBoxConfig
                    {
                        Buttons = MessageBox.Button.OK,
                        Icon = MessageBox.Icon.INFO,
                        Title = Titulos.TituloAviso,
                        Message = string.Format(tpl, myCtlFileUp.PostedFile.FileName)
                    });
                }
                else
                {
                    X.Msg.Show(new MessageBoxConfig
                    {
                        Buttons = MessageBox.Button.OK,
                        Icon = MessageBox.Icon.ERROR,
                        Title = Titulos.TituloAviso,
                        Message = Mensajes.MensajeArchivoIncorrecto
                    });
                }
                winDocumento.Hide();
            }
            catch (Exception ex)
            {
                RegistrarLog("wucInformeCorrecion.UploadClick::" + ex,true,Mensajes.MensajeArchivoIncorrecto);
            }
        }

        private void UpdateEstadoInfome(Guid idArch, string _estado)
        {
            try
            {
                Informe objInforme = Informe.GetEditableRoot(idArch);
                objInforme.Estado = _estado;
                objInforme.Save();
            }
            catch (Exception ex)
            {
                RegistrarLog("wucInformeCorrecion.UploadClick::" + ex);

            }
        }

        private void UpdateEstadoInfomeNotifica(Guid idArch)
        {
            try
            {
                Informe objInforme = Informe.GetEditableRoot(idArch);
                objInforme.Estado = Valores.Codigo_Estado_Inf_Aprobado;
                objInforme.Notifica =Valores.Codigo_CHAR_Si;
                objInforme.Save();
            }
            catch (Exception ex)
            {
                RegistrarLog("wucInformeCorrecion.UploadClick::" + ex);

            }
        }
        /// <summary>
        /// Eliminar archivos de promotor
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>     
        protected void btnDocUpEliminar_Click(object sender, DirectEventArgs e)
        {
            try
            {
                var id = Guid.Parse(e.ExtraParams["hddArchDelId"]);
                Archivo objArch = Archivo.GetEditableRoot(id, ModuloSession);

                DeleteFile(objArch.Ruta);
                
                objArch.Delete();
                objArch.Save();

                gpDocumentosLoad.GetStore().Reload();
            }
            catch (Exception ex)
            {
                RegistrarLog("wucInformeCorrecion.btnDocUpEliminar_Click::" + ex);
            }

        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="file"></param>
        private void DeleteFile(string file)
        {
            try
            {
            var path = Server.MapPath(file);
            if (System.IO.File.Exists(path))
                File.Delete(path);
            }
            catch (Exception ex)
            {
                RegistrarLog("wucInformeCorrecion.DeleteFile::" + ex);

            }
        }

        protected void btnComentarioInf_Click(object sender, DirectEventArgs e)
        {
            try
            {
                Guid id = Guid.Parse(e.ExtraParams["Id"]);
                Archivo objArch = Archivo.GetEditableRoot(id, ModuloSession);
                objArch.SubirNuevo = e.ExtraParams["Revizar"];
                objArch.Comentarios = e.ExtraParams["Comentarios"];
                //RegistrarLog(objArch.ToString()); Test try-catch
                objArch.Save();
                gpDocumentosLoad.GetStore().Reload();
                //X.Msg.Show(new MessageBoxConfig
                //{
                //    Buttons = MessageBox.Button.OK,
                //    Icon = MessageBox.Icon.INFO,
                //    Title = "Success",
                //    Message = string.Format("{0}<br/>", "Archivo asignado a revisión")
                //});
            }
            catch (Exception ex)
            {
                RegistrarLog("wucInformeCorrecion.btnComentarioInf_Click::" + ex);
            }

        }
        protected void Notifica_Command(object sender, DirectEventArgs e)
        {
            try
            {
                var informe = Informe.GetEditableRoot(Guid.Parse(e.ExtraParams["Id"]));
                informe.PersonaId = GetSessionUsuario.PersonaId;
                informe.Notifica = Valores.Codigo_CHAR_Si;
                informe.Estado = Valores.Codigo_Estado_Inf_Notificado;
                informe.TablaId = e.ExtraParams["FaseLicId"];
                informe.Save();
                X.Msg.Show(new MessageBoxConfig
                {
                    Buttons = MessageBox.Button.OK,
                    Icon = MessageBox.Icon.INFO,
                    Title = Titulos.TituloAviso,
                    Message = "Informe notificado a Promotor"
                });
            }
            catch (Exception ex)
            {
                RegistrarLog("wucInformeCorrecion.Notifica_Command::" + ex);
                X.Msg.Show(new MessageBoxConfig
                {
                    Buttons = MessageBox.Button.OK,
                    Icon = MessageBox.Icon.ERROR,
                    Title = Titulos.TituloAviso,
                    Message = "Ocurrio un error vuelva a intentar"
                });
            }
        }

        protected void btnGuardarRevizar_Click(object sender, DirectEventArgs e)
        {
            try
            {                
                //Crear Revision Fase y actualizar estado a director-subidirector
                string _stado = (e.ExtraParams["hddIdRol"] == Valores.Codigo_Rol_Director) ? Valores.Codigo_Estado_Inf_RevDir : Valores.Codigo_Estado_Inf_RevSubDir;
                RevisionFase objRevFase = RevisionFase.NewEditableRoot();
                objRevFase.Id = Guid.NewGuid();
                objRevFase.PersonaId = GetSessionUsuario.PersonaId;
                objRevFase.RevisorId = e.ExtraParams["ddfDirector"];
                objRevFase.Informe = e.ExtraParams["hddIdInforme"];
                objRevFase.Fecha = DateTime.Now;
                objRevFase.Aprobado = Valores.Codigo_CHAR_Revizar;
                objRevFase.TipoId = _stado;
                objRevFase.Save();
                UpdateEstadoInfome(Guid.Parse(e.ExtraParams["hddIdArchivo"]), _stado);
                gpDocumentosLoad.GetStore().Reload();
                X.Msg.Show(new MessageBoxConfig
                {
                    Buttons = MessageBox.Button.OK,
                    Icon = MessageBox.Icon.INFO,
                    Title = Titulos.TituloAviso,
                    Message = "Revisión creada"
                });                

            }
            catch (Exception ex)
            {
                RegistrarLog("wucInformeCorrecion.btnGuardarRevizar_Click::" + ex);
            }
        }
        protected void btnGuardarReasignar_Click(object sender, DirectEventArgs e)
        {
            try
            {
               
                //Crear Revision Fase y actualizar estado a director-subidirector
                string _stado = (e.ExtraParams["hddIdRol"] == Valores.Codigo_Rol_Director) ? Valores.Codigo_Estado_Inf_RevDir : Valores.Codigo_Estado_Inf_RevSubDir;
                RevisionFase objRevFase = RevisionFase.GetEditableRoot(Guid.Parse(e.ExtraParams["hddIdRevicion"]));
                objRevFase.RevisorId = e.ExtraParams["ddfDirector"];
                objRevFase.Informe = e.ExtraParams["hddIdInforme"];
                objRevFase.Fecha = DateTime.Now;
                objRevFase.Aprobado = Valores.Codigo_CHAR_Revizar;
                objRevFase.TipoId = _stado;
                objRevFase.Save();
                UpdateEstadoInfome(Guid.Parse(e.ExtraParams["hddIdArchivo"]), _stado);
                gpDocumentosLoad.GetStore().Reload();
                X.Msg.Show(new MessageBoxConfig
                {
                    Buttons = MessageBox.Button.OK,
                    Icon = MessageBox.Icon.INFO,
                    Title = Titulos.TituloAviso,
                    Message = "Revisión reasignada"
                });

            }
            catch (Exception ex)
            {
                RegistrarLog("wucInformeCorrecion.btnGuardarReasignar_Click::" + ex);
            }
        }
        /// <summary>
        /// Bind de comentarios de archivo
        /// </summary>
        /// <param name="action"></param>
        /// <param name="extraParams"></param>
        /// <returns></returns>
        [DirectMethod(IDAlias = "wucPlusCmt")]
        public ComentariosLista BindDataComentarios(string action, Dictionary<string, object> extraParams)
        {
            try
            {
                string queryPrm = extraParams.ContainsKey("idArchivo") ? extraParams["idArchivo"].ToString() : "";
                if (queryPrm != "")
                {
                    return ComentariosLista.GetComentariosLista(queryPrm);
                }
                return null;
            }
            catch (Exception ex)
            {
                RegistrarLog("wucOtros.BindDataAddArchivos" + ex);
            }
            return null;

        }

       public class ListReturn
        {
            public RevisionFaseLista ListaRev = null;
            public DirectorSubDirLista ListaDir = null;
            public ListReturn() { }
        }
    }
}